轴线选项

轴线类型在第二版的chartjs中有了显著的提升,而且和第一版的有所区别。

  • 支持多个x轴与多个y轴的情况。
  • 内置的标签有一个auto-skip特性,当检测到有ticks和lables要重叠时,它会去掉这第n个lable来保持正常的显示。
  • 支持轴线标题。
  • 可以在原有基础上扩展新的轴线类别而不用重新写一个。

常见配置

每一个轴线都继承了核心的轴线类,这个轴线类有如下配置选项:

Name Type Default Description
type String Chart specific. 轴线类型. 目前可以使用一个字符串关键字进行使用和注册。选项有: "category", "linear", "logarithmic", "time", "radialLinear"
display Boolean true 如果为true, 会展示网格线, 记号, 和标签的轴线. 并会重写网格线,记号,和标签的display选项.
position String "left" 轴线的位置. 可能的值为:'top', 'left', 'bottom' 和 'right'.
id String id将轴线的轴和数据集联系在一起. 属性datasets.xAxisID/yAxisID不得不匹配轴线的属性scales.xAxes/yAxes.id. 这在多轴的情况下是特别需要的。
beforeUpdate Function undefined 更新程序运行前调用. 传递单个参数, scale实例.
beforeSetDimensions Function undefined 大小设置前调用. 传递单个参数, scale实例.
afterSetDimensions Function undefined 大小设置后调用. 传递单个参数, scale实例.
beforeDataLimits Function undefined 数据限制确定前调用. 传递单个参数, scale实例.
afterDataLimits Function undefined 数据限制确定后调用. 传递单个参数, scale实例.
beforeBuildTicks Function undefined 记号创建前调用. 传递单个参数, scale实例.
afterBuildTicks Function undefined 记号创建后调用. Useful for filtering ticks. 传递单个参数, scale实例.
beforeTickToLabelConversion Function undefined 记号转变为字符串之前调用. 传递单个参数, scale实例.
afterTickToLabelConversion Function undefined 记号转变为字符串之后调用. 传递单个参数, scale实例.
beforeCalculateTickRotation Function undefined 记号旋转前调用.传递单个参数, scale实例.
afterCalculateTickRotation Function undefined 记号旋转后调用. 传递单个参数, scale实例.
beforeFit Function undefined 轴线缩放比例适用于canvas画布之前调用. 传递单个参数, scale实例.
afterFit Function undefined 轴线缩放比例适用于canvas画布之后调用. 传递单个参数, scale实例.
afterUpdate Function undefined 更新程序运行后调用. 传递单个参数, scale实例.
gridLines Object - 请看网格线配置部分.
scaleLabel Object 请看轴线标题配置部分.
ticks Object 请看记号配置部分.
网格线配置

网格线的配置是在轴线选项key为gridLines时启用。它定义了运行垂直于轴的网格线。

Name Type Default Description
display Boolean true
color Color or Array[Color] "rgba(0, 0, 0, 0.1)" 网格线颜色.
borderDash Array[Number] [] 虚线的长度和空格. 请看MDN
borderDashOffset Number 0.0 虚线的偏移值. 请看MDN
lineWidth Number or Array[Number] 1 网格线粗细程度
drawBorder Boolean true 如果为true,在图表边缘画边框
drawOnChartArea Boolean true 如果为true,图表区域内轴上画线. 在多个轴的情况下而你想精确绘制网格线的时候很有用
drawTicks Boolean true 如果为true, 图表旁边轴线内记号旁边画线
tickMarkLength Number 10 轴线区域内网格线的长度(像素级).
zeroLineWidth Number 1 第一条网格线的宽度(index 0).
zeroLineColor Color "rgba(0, 0, 0, 0.25)" 第一条网格线的颜色(index 0).
offsetGridLines Boolean false 如果为true, 标签被移动到网格线之间. 在柱状图中使用.
轴线标题配置

网格线的配置是在轴线选项key为scaleLabel时启用。它定义了轴线标题。

Name Type Default Description
display Boolean false
labelString String "" 标题文字. (i.e. "# of People", "Response Choices")
fontColor Color "#666" 轴线标题的文字颜色.
fontFamily String "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif" 轴线标题的字体, 遵从css字体选项.
fontSize Number 12 轴线标题的文字大小.
fontStyle String "normal" 轴线标题的文字样式, 遵从css文字样式选项 (i.e. normal, italic, oblique, initial, inherit).
记号配置

网格线的配置是在轴线选项key为ticks时启用。它定义了轴坐标生成的记号。

Name Type Default Description
autoSkip Boolean true 如果为true, 自动计算有多少标签能显示和隐藏。关掉这个配置可以显示所有的标签
autoSkipPadding Number 0 当autoSkip启用时记号与水平轴之间的间隔. 注意: 仅适用于水平轴线上.
callback Function function(value) { return helpers.isArray(value) ? value : '' + value;} 返回的字符串代表记号的值,它会展示在图表上。请看下面的回调部分。
display Boolean true 如果为true, 显示记号.
fontColor Color "#666" 记号标签的文字颜色.
fontFamily String "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif" 记号标签的字体, 遵从css字体选项.
fontSize Number 12 记号标签的字体大小.
fontStyle String "normal" 记号标签的文字样式, 遵从css样式选项 (i.e. normal, italic, oblique, initial, inherit).
labelOffset Number 0 以记号中心为起点对标签进行偏移设置 (y轴方向以x轴为标准, x轴方向以y轴为标准). Note: 这可能会导致标签的边缘被canvas的表元裁切
maxRotation Number 90 记号标签在旋转压缩标签时最大的旋转角度. Note: 旋转只在必要的时候出现. 注意: 仅适用于水平轴线上.
minRotation Number 0 记号标签最小的旋转角度. 注意: 仅适用于水平轴线上.
mirror Boolean false 翻转轴周围的记号标签, 将标签展示在图表内而不是图表外. 注意: 仅适用于垂直轴线上.
padding Number 10 记号标签和轴线之间的间隔距离. 注意: 仅适用于水平轴线上.
reverse Boolean false 记号标签的相反顺序.
创建定制的记号格式

callback方法被用来进行高级记号定制。在下面的例子中,y轴上的每一个标签都将以科学记数的形式展现。

如果callback返回null或是undefined,网格线将会隐藏。

var chartInstance = new Chart(ctx, {
    type: 'line',
    data: data,
    options: {
        scales: {
            yAxes: [{
                ticks: {
                    // Create scientific notation labels
                    callback: function(value, index, values) {
                        return value.toExponential();
                    }
                }
            }]
        }
    }
});

类别轴线

类别轴线和1.0版本中的使用相似. 标签会根据图表的标签数组数据中绘制. 如果只有data.labels被定义, 这会被展示出来. 如果data.xLabels被定义并且轴式水平的,这是有效的,会被展示出来. 同样, 如果data.yLabels被定义并且轴是垂直的,这也没有问题. xLabels 和 yLabels 一起使用会创造一个x轴和y轴上都有字符串的图表.

配置选项

类别轴线还有如下额外的配置选项可以设置

Name Type Default Description
ticks.min String - 显示的最小项. 必须是标签数组的一个值
ticks.max String - 显示的最大项. 必须是标签数组的一个值

线型轴线

线型轴线使用的是图表数字型数据,可以在x轴,y轴使用

配置选项

下面的选项都是由线型轴线提供,这些都是ticks的子选项

Name Type Default Description
beginAtZero Boolean - 如果为true, 轴线会从0开始.
min Number - 用户设置最小的轴线值,这个值会覆盖data数据中的最小值.
max Number - 用户设置最大的轴线值,这个值会覆盖data数据中的最大值.
maxTicksLimit Number 11 记号和网格线的最大展示数量,如果没有设置,会默认限定11个记号数,但会展示所有的网格线.
fixedStepSize Number - 用户设置固定的刻度,如果设置了,轴线记号会因为记号数的增加和刻度的增加而变得可计算。 如果没有设置,记号会用合适的数字算法自动标记.
stepSize Number - 如果定义了, 它可以与最小值和最大值一起使用,从而给出一个定制的步骤. 请看下面的实例.
suggestedMax Number - 用户定义轴线的最大值, 在大于当前最大值的情况下覆盖最大值.
suggestedMin Number - 用户定义轴线的最小值, 在小于当前最小值的情况下覆盖最小值.
实例配置

下面的实例创建了一个在y轴上一0.5为间隔的从0到5的线型图表。

var chartInstance = new Chart(ctx, {
    type: 'line',
    data: data,
    options: {
        scales: {
            yAxes: [{
                ticks: {
                    max: 5,
                    min: 0,
                    stepSize: 0.5
                }
            }]
        }
    }
});

对数轴线

线型轴线使用的是图表数字型数据,可以在x轴,y轴使用。 正如名称所示,使用对数插值来确定一个值在轴上的位置。

配置选项

下面的选项都是由对数轴线提供,这些都是ticks的子选项

Name Type Default Description
min Number - 用户设置最小的轴线值,这个值会覆盖data数据中的最小值.
max Number - 用户设置最大的轴线值,这个值会覆盖data数据中的最大值.
实例配置

下面的例子创建了一个具有从1到1000的对数X轴的图表。

var chartInstance = new Chart(ctx, {
    type: 'line',
    data: data,
    options: {
        scales: {
            xAxes: [{
                type: 'logarithmic',
                position: 'bottom',
                ticks: {
                    min: 1,
                    max: 1000
                }
            }]
        }
    }
})

时间轴线

时间轴线被用来展示时间和数据. 可以只用于x轴. 当创建记号时, 它会自动计算出轴线最合适的单元大小。

配置选项

时间轴线提供下列配置选项. 它们都位于time子选项中.

Name Type Default Description
displayFormats Object - 请看Display Formats部分
isoWeekday Boolean false 如果值为true并且单元设置为‘week’,iso工作日将会被使用
max Time - 如果定义了, 会覆盖数据最大值
min Time - 如果定义了, 会覆盖数据最小值
parser String or Function - 如果定义为字符串, 它被解释为一种自定义格式,用于解析日期。如果这是一个函数,它必须返回一个moment.js对象 给出适当的数据值
round String - 如果定义了, 日期将会四舍五入到单元的开始。请看Time Units查看可以使用的单元
tooltipFormat String '' moment js字符串格式用于工具提示
unit String - 如果定义了, 会强制使用特定类型。请看下面的Time Units查看可以使用的单元
unitStepSize Number 1 网格线之间的单元数
minUnit String 'millisecond' 时间单元上最小展示格式
数据格式

当为时间轴线提供数据时, Chart.js支持Moment.js支持的所有时间格式。 详情请看Moment.js 文档。

展示格式

下面的时间格式被用来配置不同的时间单元在轴作为记号标记时的字符串展示形式。 请看moment.js 查看被允许使用的字符串格式。

Name Default
millisecond 'SSS [ms]'
second 'h:mm:ss a'
minute 'h:mm:ss a'
hour 'MMM D, hA'
day 'll'
week 'll'
month 'MMM YYYY'
quarter '[Q]Q - YYYY'
year 'YYYY'

例如, 为“季度”单元设置显示格式,以显示月和年, 下面的配置将被传递给图表构造函数.

时间单元

支持下裂时间度量. 这些名字可以作为字符串传递给 time.unit 选项来强制使用一个单元.

  • millisecond(毫秒)
  • second(秒)
  • minute(分钟)
  • hour(小时)
  • day(天)
  • week(周)
  • month(月)
  • quarter(三个月,季度)
  • year(年)

例如,为了创建一个时间轴线的图表,一般都展示每个月的数据,如下配置可供使用.

var chartInstance = new Chart(ctx, {
    type: 'line',
    data: data,
    options: {
        scales: {
            xAxes: [{
                time: {
                    unit: 'month'
                }
            }]
        }
    }
})

放射形线形轴线

放射形线形轴线 是专门用于雷达和极坐标图类型的。 它覆盖了图表区域,而不是放在一个边缘上。

配置选项

下列额外配置选项供放射线型轴线使用。

Name Type Default Description
lineArc Boolean false 如果为 true, 结合圆弧使用,不然为直线使用。前者被极地地区的图表所使用,后者则被雷达图所使用
angleLines Object - 详细请看下面的角度线选项部分.
pointLabels Object - 详细请看下面的点标签选项部分.
ticks Object - 请看下面的记号选项.
角度线选项

下面的选项用来配置从图表中间到点标签的角度线。它们都位于angleLines子选项中。 注意这些选项只有在lineArc为false时使用。

Name Type Default Description
display Boolean true 如果为true,展示角度线.
color Color 'rgba(0, 0, 0, 0.1)' 角度线颜色
lineWidth Number 1 角度线宽度
点标签选项

下面的选项用来配置规模范围内的点标签。 它们都位于pointLabels子选项中.注意这些选项只有在lineArc为false时使用。

Name Type Default Description
callback Function - 数据标签向轴标签转换后调用
fontColor Color '#666' 文字颜色
fontFamily String "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif" 文字字体
fontSize Number 10 文字大小(像素级)
fontStyle String 'normal' 文字样式
记号选项
Name Type Default Description
backdropColor Color 'rgba(255, 255, 255, 0.75)' 标签背景幕布颜色
backdropPaddingX Number 2 标签背景幕布水平padding
backdropPaddingY Number 2 标签背景幕布垂直padding
beginAtZero Boolean - 如果为true, 轴线会从0开始.
min Number - 用户设置最小的轴线值,这个值会覆盖data数据中的最小值.
max Number - 用户设置最大的轴线值,这个值会覆盖data数据中的最大值.
maxTicksLimit Number 11 记号和网格线的最大展示数量,如果没有设置,会默认限定11个记号数,但会展示所有的网格线.
showLabelBackdrop Boolean true 如果为true, 在记号标签后绘制一个背景
fixedStepSize Number - 用户设置固定的刻度,如果设置了,轴线记号会因为记号数的增加和刻度的增加而变得可计算。 如果没有设置,记号会用合适的数字算法自动标记..
stepSize Number - 如果定义了, 它可以与最小值和最大值一起使用,从而给出一个定制的步骤. 请看下面的实例.
suggestedMax Number - 用户定义轴线的最大值, 在大于当前最大值的情况下覆盖最大值.
suggestedMin Number - 用户定义轴线的最小值, 在小于当前最小值的情况下覆盖最小值.

更新默认的轴线配置

使用轴线提供的接口可以轻易的修改配置。 传递的部分配置修改会和当前轴线的默认配置合并。

例如, 为了给所有的线型轴线设定最小值0,你可以做如下操作。如何在这操作之后创建的线型轴线都会有一个最小值0。

Chart.scaleService.updateScaleDefaults('linear', {
    ticks: {
        min: 0
    }
})

results matching ""

    No results matching ""